package cn.tanghom.baiding.core.dao;



import cn.tanghom.baiding.core.page.Page;

import java.util.List;

public interface BaseDao<T> {
    /**
     * 新增
     * @param t
     * @return
     */
    int insert(T t);

    /**
     * 更新
     * @param t
     * @return
     */
    int update(T t);

    /**
     * 根据主键查询
     * @param id
     * @return
     */
    T selectByPrimaryKey(Long id);

    /**
     * 删除多个对象
     * @param ts
     * @return
     */
    int deleteByT(T[] ts);

    /**
     * 根据ID删除对象
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);
    /**
     * 根据多个ID删除对象
     * @param ids
     * @return
     */
    int deleteByPrimaryKeys(Long[] ids);

    /**
     * 查询对象集合
     * @param t
     * @return
     */
	List<T> selectTByT(T t);

    /**
     * 分页
     * @param page
     * @return
     */
    List<T> selectTByPage(Page<T> page);

    /**
     * 查询总数
     * @param t
     * @return
     */
    Long selectTCountByT(T t);

}